home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / diskutil / noahdi.zoo / noahdi / bootsec.h next >
C/C++ Source or Header  |  1992-05-24  |  3KB  |  79 lines

  1. /*
  2.     File: BOOTSEC.H       Atari ST HD Bootsector info.
  3.  
  4.     Feb 1989. V1.00 T.H. Schipper
  5. */
  6. /*
  7. Copyright (c) 1988 - 1991 by Ted Schipper.
  8.  
  9. Permission to use, copy, modify, and distribute this software and its
  10. documentation for any purpose and without fee is hereby granted,
  11. provided that the above copyright notice appear in all copies and that
  12. both that copyright notice and this permission notice appear in
  13. supporting documentation.
  14.  
  15. This software is provided AS IS with no warranties of any kind.  The author
  16. shall have no liability with respect to the infringement of copyrights,
  17. trade secrets or any patents by this file or any part thereof.  In no
  18. event will the author be liable for any lost revenue or profits or
  19. other special, indirect and consequential damages.
  20. */
  21.  
  22. /*
  23.  * Partition information
  24.  */
  25.  
  26.  struct part_info {
  27.         char  pi_flag;          /* partition active/boot flag */
  28.         char  pi_id[3];         /* partition id (GEM) */
  29.         long  pi_start;         /* first (boot) sector of partition */
  30.         long  pi_size;          /* total number of sectors of partition */
  31.                   } ;
  32.  
  33. /*
  34.  * values of pi_flag
  35.  */
  36.  
  37. #define PI_INVALID   0x00       /* partition is not valid */
  38. #define PI_ACTIVE    0x01       /* parition is valid. must be non zero */
  39. #define PI_BOOT      0x80       /* partition is bootable */
  40.  
  41. /*
  42.  * Hard disk boot sector information
  43.  * Note 1: All bp entries in the structure are in INTEL format
  44.  * Note 2: Most entries are char's. Because of memory alignment
  45.  */
  46.  
  47. struct hd_boot {
  48.         char   hd_bras[2];      /* Branch to boot code */
  49.         char   hd_oem[6];       /* OEM stuff */
  50.         char   hd_serial[3];    /* 24-bit serial number */
  51.         char   bp_bps[2];       /* Sector size in bytes = 512 */
  52.         char   bp_spc;          /* Cluster size in sectors = 2 */
  53.         char   bp_res[2];       /* Reserved sectors */
  54.         char   bp_nfats;        /* Number of FATs = 2 */
  55.         char   bp_ndirs[2];     /* Root directory size in entries */
  56.         char   bp_nsects[2];    /* Total sectors on medium */
  57.         char   bp_media;        /* Medium descriptor */
  58.         char   bp_spf[2];       /* FAT size, in sectors */
  59.         char   bp_spt[2];       /* No. of sectors per track */
  60.         char   bp_nsides[2];    /* No. of sides on medium */
  61.         char   bp_nhid[2];      /* hidden sectors = ignored */
  62.         char   hd_code[408];    /* Boot code (408 bytes) */
  63.         short  hi_cc;           /* Number of cylinders on drive */
  64.         char   hi_dhc;          /* Number of heads on drive */
  65.         char   hi_unsed;
  66.         short  hi_rwcc;         /* Reduced write current cyl of drive */
  67.         short  hi_wpc;          /* Write precomp cyl of drive */
  68.         char   hi_lz;           /* Landing zone of drive */
  69.         char   hi_rt;           /* Seek rate code of drive */
  70.         char   hi_in;           /* Interleave factor of drive */
  71.         char   hi_spt;          /* Sectors per track on drive */
  72.         long   hi_size;         /* Size of drive in sectors */
  73.  struct part_info  p[4];        /* Partition information */
  74.         long   bsl_start;       /* Start sector of bad sector list */
  75.         long   bsl_count;       /* Number of bad sectors in list */
  76.         short  hi_magic;        /* MAGIC checksum */
  77.                } ;
  78.  
  79.